﻿using System;
using System.Collections.Generic;
using System.Data.SqlClient;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace DAO
{
    public class DAODetalleFactura
    {
        static internal void Agregar(Entidad.EntidadDetalleFactura detalleFactura,
            SqlConnection cn, SqlTransaction tran)
        {
            SqlCommand cmd = new SqlCommand();
            cmd.CommandType = System.Data.CommandType.Text;
            cmd.CommandText = "INSERT INTO detalle_factura (id_factura, id_cd, cantidad, precio) values (@id_factura, @id_cd, @cantidad, @precio)";
            cmd.Connection = cn;
            cmd.Parameters.AddWithValue("@id_factura", detalleFactura.id_factura);
            cmd.Parameters.AddWithValue("@id_cd", detalleFactura.id_cd);
            cmd.Parameters.AddWithValue("@cantidad", detalleFactura.cantidad);
            cmd.Parameters.AddWithValue("@precio", detalleFactura.precio);
            cmd.Transaction = tran;
            cmd.ExecuteNonQuery();
        }
       
        public static Boolean cdEnUso(int cdId)
        {
            Boolean cumple = false;
            AccesoDato ad = new AccesoDato();
            try
            {
                String sql = "Select top 1 * from detalle_factura where id_cd = @id_cd";
                List<SqlParameter> p = new List<SqlParameter>();
                p.Add(new SqlParameter("id_cd", cdId));
                SqlDataReader dr = ad.ejecutarSql(sql, p);

                while (dr.Read())
                {
                    cumple = true;
                }
            }
            catch (ApplicationException)
            {
                throw new ApplicationException("Error al obtener el detalle factura");
            }
            finally
            {
                ad.cerrarDR();
            }

            return cumple;
        }
    }
}
